<template>
  <el-dialog :title="dialogListTitle" custom-class="dialogList" :visible.sync="dialogListVisibleBool" width="1200px"
             :close-on-click-modal="false"
             :close-on-press-escape="false"
             :show-close="false"
  >
    <advancedQueryShrinkComponent ref="advancedQueryShrinkComponent" :labelLength="6" :queryData="queryData" @getQuery="dialogGetList" />
    <div class="width-100 bg-FF p-px-l-24 p-px-r-24 p-px-t-16 p-px-b-16">
      <!--  table max-height
          只有 高级查询一行、表格 、分页  表格高设置 max-height="350"
          只有 高级查询一行、表格        表格高设置 max-height="410"
          只有 表格 、分页              表格高设置 max-height="450"
          只有 表格                    表格高设置 max-height="500"
           -->
      <el-table ref="dialogList" v-loading="dialogListLoading" stripe :data="dialogList" max-height="350" @selection-change="(row)=>handleSelectionChangeMixins(row,'id','dialogListSelectTableList')">
        <el-table-column v-if="dialogListSelectBox==='checkbox'" type="selection" width="55" align="center" />
        <el-table-column label="序号" type="index" width="80" align="center">
          <template slot-scope="scope">
            <div class="indexRadio">
              <el-radio
                v-if="dialogListSelectBox==='radio'"
                v-model.trim="dialogListSelectId"
                :label="scope.row.id"
                type="index"
                @change="handleSelectionChangeMixins(scope.row,'id','dialogListSelectTableList','radio')"
              >
              </el-radio>
            </div>
            <span>{{ pageIndex(scope.$index, queryData.queryParams) }}</span>
          </template>
        </el-table-column>
        <el-table-column label="列表值2" prop="contractName" show-overflow-tooltip min-width="300" />
        <el-table-column label="列表值3" prop="contractTypeLabel" show-overflow-tooltip width="160" />
        <!-- 列表缺省 -->
        <div slot="empty" class="zjm_no_data_table_list height-100 flex row-center col-center">
          <el-empty :image-size="70" description="暂无数据"></el-empty>
        </div>
      </el-table>
      <pagination :total="dialogListTotal" :page.sync="queryData.queryParams.pageNum" :limit.sync="queryData.queryParams.pageSize" @pagination="dialogGetList" />
    </div>
    <div slot="footer" class="dialog-footer">
      <el-button type="primary" @click="dialogSubmitListMixins">确 定</el-button>
      <el-button @click="dialogResetListMixins">取 消</el-button>
    </div>
  </el-dialog>
</template>
<script>
// 混入
import { dialogListMixins } from '@/mixins/publicMixins/dialogListMixins'
// 组件
import advancedQueryShrinkComponent from '@/components/publicComponents/advancedQuery/indexShrink'
// -------------------------------------------------------------
export default {
  mixins: [dialogListMixins],
  components: { advancedQueryShrinkComponent },
  inject: ['provideAll'],
  provide() {
    return {
      listQueryParams: this
    }
  },
  data() {
    return {

      // 查询条件+查询组
      queryData: {
        queryParams: {
          pageNum: 1, // 分页的初始值
          pageSize: 10 // 每页的显示数
        },
        data: [
          {
            label: '输入框', // 前端展示的label
            type: 'input', // 格式：input/select/date/money/number
            value: null, // 查询回填值
            valueKey: 'valueKey' // 查询入参Key
          },
          {
            label: '选择器Dict', // 前端展示的label
            type: 'select', // 格式：select
            value: null, // 查询回填值
            valueKey: 'selectDicts', // 查询入参Key
            typeData: [], // select类储存options
            dataType: 'dicts', // 获取储存options的类型  数据字典：dicts，其他接口获取：url
            getDicts: 'contract_purchase_type', // 数据字典类型值
            multiple: true// 是不是多选
          },
          {
            label: '选择器Url', // 前端展示的label
            type: 'select', // 格式：select
            value: null, // 查询回填值
            valueKey: 'selectUrl', // 查询入参Key
            typeData: [], // select类储存options
            dataType: 'url', // 获取储存options的类型  数据字典：dicts，其他接口获取：url
            getUrl: '/contract-info/getPage', // // 如果不是数据字典，把后台服务路径传入
            getUrlListBool: false, // 接口返回格式时候为常规数则  例如:[2020,2021]
            getUrlData: null, // 入参
            getUrlMethod: 'get', // 请求类型
            getUrlDictValue: 'id', // 回填时Value的key
            getUrlDictLabel: 'contractName', //  回填时Label的key
            multiple: false// 是不是多选
          },
          {
            label: '树形选择器', // 前端展示的label
            type: 'treeselect', // 格式：select
            value: null, // 查询回填值
            valueKey: 'treeselect', // 查询入参Key
            typeData: [], // tree类储存options
            dataType: 'url', // 获取储存options的类型  数据字典：dicts，其他接口获取：url
            getUrl: '/system/menu/list', // // 如果不是数据字典，把后台服务路径传入
            getUrlData: null, // 入参
            getUrlMethod: 'get', // 请求类型
            normalizerObj: { id: 'menuId', label: 'menuName' }, // 需要重构的字段名称数组渲染数据时取值的obj   默认 { id: 'id', label: 'name' }  例如：{ id: 'menuId', label: 'menuName' }
            multiple: false// 是不是多选
          },
          {
            label: '年', // 前端展示的label
            type: 'year', // 格式：数字格式  回填至格式 yyyy
            startValue: null, // 区间开始查询回填值
            endValue: null, //  区间结束查询回填值
            startKey: 'startYear', // 区间开始查询入参Key
            endKey: 'endYear'// 区间结束查询入参Key
          },
          {
            label: '年月', // 前端展示的label
            type: 'month', // 格式：数字格式  回填至格式 yyyy-mm
            startValue: null, // 区间开始查询回填值
            endValue: null, //  区间结束查询回填值
            startKey: 'startAmount', // 区间开始查询入参Key
            endKey: 'endAmount'// 区间结束查询入参Key
          },

          {
            label: '年月日', // 前端展示的label
            type: 'date', // 格式：数字格式  回填至格式 yyyy-mm-dd
            startValue: null, // 区间开始查询回填值
            endValue: null, //  区间结束查询回填值
            startKey: 'startAmount', // 区间开始查询入参Key
            endKey: 'endAmount'// 区间结束查询入参Key
          },

          {
            label: '数字', // 前端展示的label
            type: 'number', // 格式：数字格式
            precision: 2, // 数值精度 默认0
            min: -3, // 可输入的最小值 默认0
            max: 999999999, // 可输入的最大值   默认10位
            startValue: null, // 区间开始查询回填值
            endValue: null, //  区间结束查询回填值
            startKey: 'startAmount', // 区间开始查询入参Key
            endKey: 'endAmount'// 区间结束查询入参Key
          }
        ]
      }

    }
  },
  created() {
  },
  methods: {
    /**
     * @description: 弹窗列表
     * @Author: baoxuhui
     * @param {*} queryParams //接口所需的入参
     * @return {*}
     */
    dialogGetList(queryParams) {
      this.dialogGetListMixins('/contract-info/getPage', queryParams)
    }
  }
}
</script>
